package com.ruoyi.web.controller.Ca;

import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

@Api(tags = "知情文书系统")
@RestController
@RequestMapping("/writ")
public class writController {

    // 令牌自定义标识
    @Value("${token.header}")
    private String header;

    // 令牌秘钥
    @Value("${token.secret}")
    private String secret;

    @ApiOperation(value = "解析前端token,获取患者知情文书系统")
    @GetMapping("/parsetoken")
    public AjaxResult parseToken(HttpServletRequest request){
        //根据令牌自定义标识获取请求头中的token
        String token = request.getHeader(this.header);
        if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
        {
            token = token.replace(Constants.TOKEN_PREFIX, "");
        }
        //解析token
        Claims body = Jwts.parser()
                .setSigningKey(secret)
                .parseClaimsJws(token)
                .getBody();
        //获得token中的Map,Map值为医生
        Map<String,Object> map = (Map<String, Object>) body.get(Constants.LOGIN_USER_KEY);
        //获取医生的手机号
        String phonenumber = (String) map.get("phonenumber");
        //根据手机号
        return AjaxResult.success("验证成功");
    }

}
